package models

import "time"

// 积分变动类型
const (
	PointsTypeSignIn  = "sign_in" // 签到
	PointsTypeShare   = "share"   // 分享
	PointsTypeInvite  = "invite"  // 邀请新用户
	PointsTypeTask    = "task"    // 完成任务
	PointsTypeConsume = "consume" // 消费使用
	PointsTypeExpire  = "expire"  // 过期失效
	PointsTypeAdmin   = "admin"   // 管理员操作
)

// UserPointsLog 用户积分记录表
type UserPointsLog struct {
	Id         int64     `json:"id" xorm:"pk autoincr"`
	UserId     int64     `json:"user_id" xorm:"not null comment('用户ID') index"`
	Type       string    `json:"type" xorm:"varchar(20) not null comment('变动类型')"`
	Points     int64     `json:"points" xorm:"not null comment('变动积分')"`
	Balance    int64     `json:"balance" xorm:"not null comment('变动后余额')"`
	Remark     string    `json:"remark" xorm:"varchar(255) not null default '' comment('备注')"`
	OperatorId int64     `json:"operator_id" xorm:"not null default 0 comment('操作人ID')"`
	CreateTime time.Time `json:"create_time" xorm:"not null created comment('创建时间')"`
}

// TableName 表名
func (UserPointsLog) TableName() string {
	return "user_points_log"
}
